home *** CD-ROM | disk | FTP | other *** search
- ###########################################################################
- # set up the colors
- #
- # OK some people like bright clear colors on their window decorations.
- # These people, I guess would mostly be from nice sunny/good weather places
- # line California.
- #
- # StdForeColor Black
- # StdBackColor LightSkyBlue
- # HiForeColor yellow
- # HiBackColor PeachPuff1
- # PagerBackColor BlanchedAlmond
-
- # Me, I'm from Upstate New York, and live in New Hampshire, so I prefer
- # these dark muddy colors...
-
- # this is used for non-selected windows, menus, and the panner
- StdForeColor Black
- StdBackColor #60a0c0
-
- # this is used for the selected window
- HiForeColor Black
- HiBackColor #c06077
-
- PagerBackColor #5c54c0
- PagerForeColor orchid
-
- StickyForeColor Black
- StickyBackColor #60c0a0
-
- ############################################################################
- # Now the fonts - one for menus, another for window titles, another for icons
- #Font -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
- Font -*-times-medium-i-*-*-*-120-*-*-*-*-*-*
- WindowFont -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
- #IconFont -adobe-helvetica-medium-r-*-*-11-*-*-*-*-*-*-*
- IconFont fixed
-
- # PagerFont is used to mark windows in the Pager with their icon names.
- # This is really only useful for DeskTopScale < 20 or so
- #PagerFont 5x8
-
- ###########################################################################
- # Set up the major operating modes
- #
- ######################## FOCUS STUFF ##############################
- # Set windows to auto-raise after 750 milliseconds if you like it.
- # Autoraise can sometimes obscure pop-up windows. Performance is now
- # similar to olvwm's auto-raise feature.
- #AutoRaise 750
-
- # Normally, we'll be in focus-follows mouse mode, but uncomment this
- # for mwm-style click-to-focus
- #ClickToFocus
-
- ######################## ICON STUFF ##############################
- # Auto Place Icons is a nice feature....
- # This creates two icon boxes, one on the left side, then one on the
- # bottom. Leaves room in the upper left for my clock and xbiff,
- # room on the bottom for the Pager.
- #IconBox -150 90 -5 -140
- #IconBox 5 -140 -140 -5
- IconBox -70 1 -1 -140
-
- # If you uncomment this, and make sure that the WindowList is bound to
- # something, it works pretty much like an icon manager.
- #SuppressIcons
-
- # StubbornIcons makes icons de-iconify into their original position on the
- # desktop, instead of on the current page.
- #StubbornIcons
-
- # With AutoPlacement, icons will normally place themselves underneath active
- # windows. This option changes that.
- #StubbornIconPlacement
-
- # If you want ALL you icons to follow you around the desktop (Sticky), try
- # this
- #StickyIcons
-
- ######################## MISCELLANEOUS STUFF #######################
- # If you don't like the default 150 msec click delay for the complex functions
- # change this and uncomment it.
- #ClickTime 150
-
- # OpaqueMove has a number (N) attached to it (default 5), if the window occupies
- # less than N% of the screen, opaque move is used. 0 <= N <= 100
- # OpaqueMove 100
-
- # flip by whole pages on the edge of the screen.
- EdgeScroll 100 100
-
- # A modest delay before flipping pages seems to be nice...
- # I thresh in a 50 pixel Move-resistance too, just so people
- # can try it out.
- EdgeResistance 250 50
-
-
- ######################## WINDOW PLACEMENT #######################
- # RandomPlacement prevents user interaction while placing windows:
- # RandomPlacement
-
- # SmartPlacement makes new windows pop-up in blank regions of screen if possible,
- # otherwise falls back to random or interactive placement.
- SmartPlacement
-
- # With SmartPlacement, windows will normally place themselves over icons. Uncomment
- # this to change that.
- #StubbornPlacement
-
- # NoPPosition instructs fvwm to ignore the PPosition field in window geometry hints.
- # Emacs annoyingly sets PPosition to (0,0)!
- NoPPosition
-
-
- ######################## DECORATIONS #######################
- # If you want decorated transient windows, uncomment this:
- #DecorateTransients
-
- # Width of decorations on otherwise undecorated windows:
- NoBoundaryWidth 3
-
- # Width of side-bars on decorated windows:
- BoundaryWidth 4
-
-
- ##########################################################################
- # Module path and modules to be launched during initialization
- #
- # ModulePath is a colon-separated list, just like regular unix PATH
- ModulePath /local/homes/dsp/nation/modules:/usr/lib/X11/fvwm
-
- # Modules to be launched during initialization go here
- Module FvwmInitModule
- Module GoodStuff
- # Module FvwmNoClutter
-
-
-
- ###########################################################################
- # Set up the virtual desktop and pager
-
- #set the desk top size in units of physical screen size
- DeskTopSize 3x3
-
- # and the reduction scale used for the panner/pager
- DeskTopScale 32
-
- # Use the Fvwm Pager
- Pager -5 -5
-
- ############################################################################
- # list the windows that don't want a title bar
- NoTitle Fvwm Pager
- NoTitle xclock
- NoTitle xdclock
- NoTitle Clock
- NoTitle xbiff
- NoTitle GoodStuff
- NoTitle Sppeed6_user
-
- ###########################################################################
- # Here's where I could list NoBorder windows that don't get frames.
- # If a window shows up with NoTitle and NoBorder, it gets a simple frame
- # whose width is specified by the NoBoundaryWidth option (can be 0).
- #
- # When windows are NoBordered, they look a bit like twm is handling them
- NoBorder Clock
-
- ##########################################################################
- # now the windows that "Stick to the glass", ie don't scroll with the
- # desktop
- # The pager is automatically sticky
- Sticky xclock
- Sticky xdclock
- Sticky oclock
- Sticky Clock
- Sticky xbiff
- Sticky GoodStuff
-
-
- ############################################################################
- # now list windows that want to "stay on top," ie stay visible until
- # explicitly lowered
- # I got tired of this, except for the pager.
- #StaysOnTop xclock
- #StaysOnTop xdclock
- #StaysOnTop oclock
- #StaysOnTop Clock
- StaysOnTop Fvwm Pager
-
-
- ############################################################################
- # now list windows that don't need to show up in the window list
- WindowListSkip Clock
- WindowListSkip xbiff
- WindowListSkip xcloc
- WindowListSkip Fvwm Pager
-
-
- ############################################################################
- # define some common icon bitmaps
-
- # These are the color icons.
- # Of course, you need to change the directory to the one where they
- # really live.
- # Keep m4 from barfing on my icon and bitmap paths
- # undefine(`include')
-
- PixmapPath /usr/include/X11/pixmaps/:/local/homes/dsp/nation/icons
- IconPath /usr/include/X11/bitmaps/
-
- Icon "rxvt" term.xpm
- Icon "xterm" xterm.xpm
- Icon "Fvwm Pager" map.xpm
- Icon "Appointment" datebook.xpm
- Icon "xcalc" xcalc.xpm
- Icon "xbiff" mail1.xpm
- Icon "xmh" mail1.xpm
- Icon "xman" xman.xpm
- Icon "xvgr" graphs.xpm
- Icon "matlab" math4.xpm
- Icon "xmag" magnifying_glass2.xpm
- Icon "xgraph" graphs.xpm
- Icon "GoodStuff" toolbox.xpm
- Icon "" unknown1.xpm
-
-
- # Here are some monchrome icon bitmaps that everyone should have
- #Icon "rxvt" terminal
- #Icon "xterm" Term
- # I have included a default.xbm in the fvwm_icons subdirectory
- #Icon "" default.xbm
-
- ############################################################################
- # Now define some handy complex functions
-
- # This one moves and then raises the window if you drag the mouse,
- # only raises the window if you click, or does a RaiseLower if you double
- # click
- Function "Move-or-Raise"
- Move "Motion"
- Raise "Motion"
- Raise "Click"
- RaiseLower "DoubleClick"
- EndFunction
-
- # This one maximizes vertically if you click (leaving room for the GoodStuff bar at the
- # bottom, or does a full maximization if you double click, or a true full vertical
- # maximization if you just hold the mouse button down.
- Function "maximize_func"
- Maximize "Motion" 0 100
- Maximize "Click" 0 92
- Maximize "DoubleClick" 100 100
- EndFunction
-
-
- # This one moves and then lowers the window if you drag the mouse,
- # only lowers the window if you click, or does a RaiseLower if you double
- # click
- Function "Move-or-Lower"
- Move "Motion"
- Lower "Motion"
- Lower "Click"
- RaiseLower "DoubleClick"
- EndFunction
-
- # This one moves or (de)iconifies:
- Function "Move-or-Iconify"
- Move "Motion"
- Iconify "DoubleClick"
- EndFunction
-
- # This one resizes and then raises the window if you drag the mouse,
- # only raises the window if you click, or does a RaiseLower if you double
- # click
- Function "Resize-or-Raise"
- Resize "Motion"
- Raise "Motion"
- Raise "Click"
- RaiseLower "DoubleClick"
- EndFunction
-
-
- # This is provided as a hint only.
- # Move to a known page on the desktop, then start an application in a
- # known location. Could also switch to a known desktop, I guess
- #Function "abs_coord"
- # GoToPage "Immediate" 1,1
- # Exec "Immediate" exec xcalc -geometry +100+100&
- #EndFunction
-
-
- ##############################################################################
- #now define the menus - defer bindings until later
-
- # This menu is invoked as a sub-menu - it allows you to quit,
- # restart, or switch to another WM.
- Popup "Quit-Verify"
- Title "Really Quit Fvwm?"
- Quit "Yes, Really Quit"
- Restart "Restart Fvwm" fvwm
- Restart "Start twm" twm
- Restart "Start tvtwm" tvtwm
- Restart "Start mwm" mwm
- Restart "Start olwm" /usr/openwin/bin/olwm
- Nop ""
- Nop "No, Don't Quit"
- EndPopup
-
- # Provides a list of modules to fire off
- Popup "Module-Popup"
- Title "Modules"
- Module "GoodStuff" GoodStuff
- Module "NoClutter" FvwmNoClutter
- Module "Identify" FvwmIdentify
- Module "SaveDesktop" FvwmSaveDesktop
- Module "Debug" FvwmModuleDebugger
- EndPopup
-
- # This menu will fire up some very common utilities
- Popup "Utilities"
- Title "Utilities"
- Exec "Xterm" exec xterm -e tcsh &
- Exec "Rxvt" exec rxvt &
- Exec "Top" exec rxvt -T Top -n Top -e top &
- Exec "Calculator" exec xcalc &
- Exec "Xman" exec xman &
- Exec "Xmag" exec xmag &
- Nop ""
- Popup "Exit Fvwm" Quit-Verify
- Popup "Modules" Module-Popup
- Nop ""
- Refresh "Refresh Screen"
- EndPopup
-
- # This defines the most common window operations
- Popup "Window Ops"
- Title "Window Ops"
- Function "Move" Move-or-Raise
- Function "Resize" Resize-or-Raise
- Raise "Raise"
- Lower "Lower"
- Iconify "(De)Iconify"
- Stick "(Un)Stick"
- Maximize "(Un)Maximize"
- Maximize "(Un)Maximize Vertical" 0 100
- Nop ""
- Destroy "Destroy"
- Delete "Delete"
- EndPopup
-
- # A trimmed down version of "Window Ops", good for binding to decorations
- Popup "Window Ops2"
- Function "Move" Move-or-Raise
- Function "Resize" Resize-or-Raise
- Raise "Raise"
- Lower "Lower"
- Iconify "Iconify"
- Stick "(Un)Stick"
- Nop ""
- Destroy "Destroy"
- Delete "Delete"
- EndPopup
-
- #############################################################################
- # One more complex function - couldn't be defined earlier because it used
- # pop-up menus
- #
- # This creates a motif-ish sticky menu for the title-bar window-ops
- # pop-up
- # Menu acts like normal twm menu if you just hold the button down,
- # but if you click instead, the menu stays up, motif style
- Function "window_ops_func"
- PopUp "Click" Window Ops2
- PopUp "Motion" Window Ops2
- # Motif would add
- # Delete "DoubleClick"
- EndFunction
-
-
- ##############################################################################
- # This defines the mouse bindings
-
- # First, for the mouse in the root window
- # Button 1 gives the Utilities menu
- # Button 2 gives the Window Ops menu
- # Button 3 gives the WindowList (like TwmWindows)
- # I use the AnyModifier (A) option for the modifier field, so you can hold down
- # any shift-control-whatever combination you want!
-
- # Button Context Modifi Function
- Mouse 1 R A PopUp "Utilities"
- Mouse 2 R A PopUp "Window Ops"
- Mouse 3 R A WindowList
-
-
-
- # Now the title bar buttons
- # Any button in the left title-bar button gives the window ops menu
- # Any button in the right title-bar button Iconifies the window
- # Any button in the rightmost title-bar button maximizes
- # Note the use of "Mouse 0" for AnyButton.
-
- # Button Context Modifi Function
- Mouse 0 1 A Function "window_ops_func"
- Mouse 0 2 A Function "maximize_func"
- Mouse 0 4 A Iconify
-
- # Now the rest of the frame
- # Here I invoke my complex functions for Move-or-lower, Move-or-raise,
- # and Resize-or-Raise.
- # Button 1 in the corner pieces, with any modifiers, gives resize or raise
- Mouse 1 F A Function "Resize-or-Raise"
- # Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
- Mouse 1 TS A Function "Move-or-Raise"
-
- # Button 1 in an icons gives move for a drag, de-iconify for a double-click,
- # nothing for a single click
- # Button 2 in an icon, w/ any modifiers, gives de-iconify
-
- Mouse 1 I A Function "Move-or-Iconify"
- Mouse 2 I A Iconify
-
- # Button 2 in the corners, sides, or title-bar gives the window ops menu
- Mouse 2 FST A Function "window_ops_func"
- # Button 3 anywhere in the decoration (except the title-bar buttons)
- # does a raise-lower
- Mouse 3 TSIF A RaiseLower
-
- # Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
- # gives Raise-Lower. Used to use control here, but that interferes with xterm
- Mouse 3 W M RaiseLower
-
- ############################################################################
- # Now some keyboard shortcuts.
-
- # Arrow Keys
- # press arrow + control anywhere, and scroll by 1 page
- Key Left A C Scroll -100 0
- Key Right A C Scroll +100 +0
- Key Up A C Scroll +0 -100
- Key Down A C Scroll +0 +100
-
- # press arrow + meta key, and scroll by 1/10 of a page
- Key Left A M Scroll -10 +0
- Key Right A M Scroll +10 +0
- Key Up A M Scroll +0 -10
- Key Down A M Scroll +0 +10
-
- # press shift arrow + control anywhere, and move the pointer by 1% of a page
- Key Left A SC CursorMove -1 0
- Key Right A SC CursorMove +1 +0
- Key Up A SC CursorMove +0 -1
- Key Down A SC CursorMove +0 +1
-
- # press shift arrow + meta key, and move the pointer by 1/10 of a page
- Key Left A SM CursorMove -10 +0
- Key Right A SM CursorMove +10 +0
- Key Up A SM CursorMove +0 -10
- Key Down A SM CursorMove +0 +10
-
- # Keyboard accelerators
- Key F1 A M Popup "Utilities"
- Key F1 A M Popup "Utilities"
- Key F2 A M Popup "Window Ops"
- Key F3 A M WindowList
- Key F4 A M Iconify
- Key F5 A M Move
- Key F6 A M Resize
- Key F7 A M CirculateUp
- Key F8 A M CirculateDown
-
- #Page Up/Dapge Down keys are used to scroll by one desktop page
- # in any context, press page up/down + control
- # in root context, just pressing page up/down is OK
- #
- # I prefer the non-wrapping scroll. These are for example purposes only
- #Key Next A C Scroll 100000 0
- #Key Next R N Scroll 100000 0
- #Key Prior A C Scroll -100000 0
- #Key Prior R N Scroll -100000 0
-
-
- ############################################################################
- ############################################################################
- #Definitions used by the modules
-
- ###################### GoodStuff button-bar ################################
- # Colors
- *GoodStuffFore Black
- *GoodStuffBack #908090
-
- # Font
- *GoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
-
- # Geometry - really likes to pick its own size, but giving a position is OK
- *GoodStuffGeometry +0-1
-
- # Layout: specify rows or columns, not both
- # *GoodStuffColumns 1
- *GoodStuffRows 1
-
- # Define the buttons to use.....
- *GoodStuff Resize arrows2.xpm Resize
- *GoodStuff Move map.xpm Move
- *GoodStuff Lower arrdown2.xpm Lower
- *GoodStuff Raise arrup2.xpm Raise
- *GoodStuff Kill rbomb.xpm Destroy
-
- # xterm or rxvts on remote machines can be done like this
- # Output re-direction is csh style, not sh style
- *GoodStuff Dopey rterm.xpm Exec "rxvt" rsh dopey "exec rxvt -display $DISPLAY </dev/null >&/dev/null & "&
- *GoodStuff Grumpy rterm.xpm Exec "rxvt" rsh grumpy "exec rxvt -display $DISPLAY </dev/null >&/dev/null & "&
- *GoodStuff Snoopy rterm.xpm Exec "rxvt" rsh snoopy "exec rxvt -display $DISPLAY </dev/null >&/dev/null & "&
-
- *GoodStuff Xcalc rcalc.xpm Exec "Calculator" exec xcalc &
- *GoodStuff XMag magnifying_glass2.xpm Exec "xmag" exec xmag &
- *GoodStuff Mail mail2.xpm Exec "xmh" exec xmh &
- *GoodStuff Paging clamp.xpm TogglePage
-
- #Buttons for some other desktops.
- *GoodStuff Desk-0 desk.xpm Desk 0 0
- *GoodStuff Desk-1 desk.xpm Desk 0 1
- *GoodStuff Desk-2 desk.xpm Desk 0 2
- *GoodStuff Desk-3 desk.xpm Desk 0 3
-
- ######################### No Clutter ########################################
- # I only wrote NoClutter as a simple test case, but maybe some big sites like
- # universities really have usage problems (too many open windows)....
- # Time delays are in seconds.
- *FvwmNoClutter 3600 Iconify 1
- *FvwmNoClutter 86400 Delete
- *FvwmNoCLutter 172800 Destroy
-
- ########################## Window-Identifier ###############################
- # Just choose colors and a fonts
- *FvwmIdentifyBack MidnightBlue
- *FvwmIdentifyFore Yellow
- *FvwmIdentifyFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
-